// https://leetcode.cn/problems/climbing-stairs/submissions/
// 动态规划
class Solution {
    public int climbStairs(int n) {
        // dp[i] 爬到第 i 阶时的方法数量
        int[] dp = new int[n + 1];
        dp[0] = dp[1] = 1;
        for (int i = 2; i <= n; i++) 
            dp[i] = dp[i - 1] + dp[i - 2];
        return dp[n];
    }
}